package models

import (
	"github.com/astaxie/beego/orm"
)

func (m *GoodsSKU) Read() (*GoodsSKU, error) {
	o := orm.NewOrm()
	if err := o.Read(m); err != nil {
		return m, err
	}
	o.LoadRelated(m, "Goods")
	o.LoadRelated(m, "GoodsType")
	return m, nil
}

func (m *GoodsSKU) QueryRecommend(typ *GoodsType) (goodsRecommend []*GoodsSKU, err error) {
	if _, err = orm.NewOrm().QueryTable("GoodsSKU").RelatedSel("GoodsType", "Goods").OrderBy("Time").Filter("GoodsType__Id", typ.Id).Limit(2, 0).All(&goodsRecommend); err != nil {
		return goodsRecommend, err
	}
	return goodsRecommend, nil
}

func QueryGoodsSKUsByType(typ *GoodsType) orm.QuerySeter {
	return orm.NewOrm().QueryTable("GoodsSKU").RelatedSel("GoodsType", "Goods").Filter("GoodsType__Id", typ.Id)
}

func GoodsSKUs() orm.QuerySeter {
	return orm.NewOrm().QueryTable("GoodsSKU").RelatedSel("GoodsType", "Goods").RelatedSel()
}
